/*
 * 版权所有 ( c ) 联想集团有限公司 2005-2009 保留所有权利。
 * 项目：	Lenovo Push Service
 * 文件名：	ImageWriteExample.java
 * 版本:    1.0
 * 描述：	
 * 作者：	刘兵召
 * 日期：	May 10, 2010 
 * 修改历史：
 * 【时间】		【修改者】	【修改内容】
 */
package com.feng.demo.jakartacommons.sanselan;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.io.FileUtils;
import org.apache.sanselan.ImageFormat;
import org.apache.sanselan.ImageReadException;
import org.apache.sanselan.ImageWriteException;
import org.apache.sanselan.Sanselan;
import org.apache.sanselan.SanselanConstants;
import org.apache.sanselan.formats.tiff.constants.TiffConstants;

public class ImageWriteExample {
	public static void main(String [] args) throws ImageReadException, ImageWriteException, IOException{
		File file = new File("d:/2010-04-15012728-12713092483130463.png");
		byte[] imageData = imageWriteExample(file);
		
		FileUtils.writeByteArrayToFile(new File("d:/write.png"), imageData);
	}
	public static byte[] imageWriteExample(File file)
			throws ImageReadException, ImageWriteException, IOException {
		// read image
		BufferedImage image = Sanselan.getBufferedImage(file);

		//ImageFormat format = ImageFormat.IMAGE_FORMAT_TIFF;
		ImageFormat format = ImageFormat.IMAGE_FORMAT_PNG;
		Map params = new HashMap();

		// set optional parameters if you like
		//params.put(SanselanConstants.PARAM_KEY_COMPRESSION, new Integer(TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED));
		params.put(SanselanConstants.PARAM_KEY_FORMAT, new Integer(TiffConstants.TIFF_COMPRESSION_JPEG));
		byte bytes[] = Sanselan.writeImageToBytes(image, format, params);
		return bytes;
	}
}
